Health & fitness
Trainerize
Clients, programs, check-ins and messages for your Trainerize business.
14 endpoints
Bring Dentrix Ascend schedules and administrative status reports into your permitted workflow. Use MCP or REST with your agent, automation tools or scripts.
13 tools Read and write
Dentrix Ascend has an API, but only for software vendors approved into the Henry Schein One API Exchange (checked 27 Oct 2026). Henry Schein One announced an MCP layer inside Ascend on 28 Apr 2026, with no developer docs for connecting your own agent. Cotlet runs 13 tools hosted in your own login, over MCP for agents and REST for scripts.
| What you need | Official API and MCP | GitHub server | Cotlet |
|---|---|---|---|
| Your own agent on your own practice | Approved vendors only | None exists | Yes, your login |
| Eligibility list and verification | Inside Ascend | None exists | Yes, Pro asks first |
| Unconfirmed appointments and recare | Recare agent, select customers | None exists | Yes |
| Outstanding claims and Power Reports | Ask preview inside Ascend | None exists | Yes, read only |
| Sanctioned by Henry Schein One | Yes, official | None exists | Uses the web app |
Checked 27 Oct 2026. Sources: Henry Schein One: Dentrix Ascend opens its MCP layer (28 Apr 2026) · Henry Schein One: Dentrix Ascend API Exchange announced (13 Jul 2023) · Henry Schein One: API Exchange customer FAQs · Dentrix Ascend Help: Verifying eligibility statuses · Dentrix Ascend Help: Eligibility Essentials and Pro overview
Use your own account in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Ask your agent or send an HTTP request.
We never keep your Dentrix Ascend password, you type every MFA code, and paid eligibility requests wait for your OK. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
Enable Dentrix Ascend for agents. Sign up, log in to Dentrix Ascend in its Cloud Browser with your Organization and username, then press Enable for agents.
Paste the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.
One shared address, https://cotlet.dev/mcp/v1, also carries Dentrix Ascend next to your other apps. Use a Dentrix Ascend user of your own with a unique email: Henry Schein One's MFA rules say shared logins trigger more verification codes. If you enable Dentrix Ascend after connecting, refresh the connector so the new tools show up.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-dentrix-ascend \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-dentrix-ascend": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet-dentrix-ascend]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: dentrix_ascend_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: dentrix_ascend_write Sign in to Dentrix Ascend in its Cotlet Cloud Browser and enable the app for agents. Your user needs schedule, insurance and report security rights; enter the MFA code yourself.
Create a Cotlet API key with access to Dentrix Ascend and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
curl "https://cotlet.dev/api/v1/dentrix-ascend/appointments?from=2026-11-02&to=2026-11-02" \
-H "Authorization: Bearer $COTLET_API_KEY" A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.
{
"status": "success",
"app": "dentrix-ascend",
"tool": "list_appointments",
"result": {
"location": "Main Street Dental",
"appointments": [
{
"appointment_id": "apt_40211",
"start": "2026-11-02T08:00:00-06:00",
"duration_minutes": 60,
"patient": "Ava Morales",
"patient_id": "pt_1182",
"provider": "Dr. Ellis",
"operatory": "OP 2",
"procedures": [
"D1110",
"D0120"
],
"status": "Confirmed",
"eligibility": "Eligible"
}
]
}
} Replace the dates with your reporting day and read result.appointments. The operation reads one location per call without cursor or page-size inputs.
Appointment timestamps keep their offset and durations use minutes. Compare confirmation state and timing as well as IDs when preparing an administrative queue.
Insurance eligibility covers primary insurance only; Unable to Verify does not mean Ineligible. These reads return no clinical notes, charts, images or prescriptions.
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Read appointments and unconfirmed appointments into an administrative follow-up queue without sending messages. |
| Make | HTTP > Make a request | Read eligibility states into a staff review list that distinguishes Unable to Verify from Ineligible. |
| Python or Node.js | REST API | Read outstanding and patient claims into an administrative report without resubmission or clinical interpretation. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.
Cotlet reads Dentrix Ascend; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.
Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
One location per call. Marking a confirmation records your call; Dentrix Ascend sends the patient nothing.
Returns appointments from the Calendar in start order with patient, provider, operatory, procedures, confirmation status and eligibility status. One location per call. Clinical notes, charts, images and prescriptions are never returned.
MCP calldentrix_ascend_read → list_appointments
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/appointments
| Name | Type | Description |
|---|---|---|
| from date | date | Start of the range. Default: today. |
| to date | date | End of the range. Default: 7 days after from. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
| provider string | string | Provider name. Default: every provider you can see. |
{
"location": "Main Street Dental",
"appointments": [
{
"appointment_id": "apt_40211",
"start": "2026-10-28T08:00:00-06:00",
"duration_minutes": 60,
"patient": "Ava Morales",
"patient_id": "pt_1182",
"provider": "Dr. Ellis",
"operatory": "OP 2",
"procedures": [
"D1110",
"D0120"
],
"status": "Confirmed",
"eligibility": "Eligible"
},
{
"appointment_id": "apt_40214",
"start": "2026-10-28T09:00:00-06:00",
"duration_minutes": 90,
"patient": "Liam Carter",
"patient_id": "pt_2045",
"provider": "Dr. Ellis",
"operatory": "OP 1",
"procedures": [
"D2740"
],
"status": "Unconfirmed",
"eligibility": "Unable to Verify"
}
]
} Reads Schedule > Unconfirmed Appointments. Returns appointments grouped by household with the primary contact's phone and email, the status (Unconfirmed, Left Message, Unreachable, Confirmed) and Last Contacted, which says whether an automated text or email went out and when. Nothing is changed.
MCP calldentrix_ascend_read → list_unconfirmed_appointments
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/unconfirmed-appointments
| Name | Type | Description |
|---|---|---|
| date date | date | Day to read. Default: the next business day. |
| view string | string | day or week. Default: day. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
| provider string | string | Provider name. Default: every provider you can see. |
{
"date": "2026-10-28",
"appointments": [
{
"appointment_id": "apt_40214",
"start": "2026-10-28T09:00:00-06:00",
"patient": "Liam Carter",
"household_contact": "Liam Carter",
"phone": "(555) 010-2231",
"status": "Unconfirmed",
"last_contacted": {
"channel": "text",
"at": "2026-10-26T10:00:00-06:00"
}
},
{
"appointment_id": "apt_40219",
"start": "2026-10-28T13:30:00-06:00",
"patient": "Noah Kim",
"household_contact": "Grace Kim",
"phone": "(555) 010-4410",
"status": "Left Message",
"last_contacted": {
"channel": "email",
"at": "2026-10-26T10:00:00-06:00"
}
}
]
} Reads the list panel of the Calendar page. Returns each appointment with patient, provider, procedures and the date it was originally booked for. Nothing is changed and no appointment is moved.
MCP calldentrix_ascend_read → list_broken_appointments
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/broken-appointments
| Name | Type | Description |
|---|---|---|
| list string required | string | pinboard, asap or broken_no_show. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
{
"list": "list"
} {
"list": "Broken/No Show",
"appointments": [
{
"appointment_id": "apt_39877",
"patient": "Olivia Grant",
"patient_id": "pt_2290",
"provider": "Dr. Ellis",
"procedures": [
"D2391"
],
"original_start": "2026-10-21T14:00:00-06:00"
}
]
} Uses the Patient Search box and returns matches with patient_id, status, preferred location, primary contact and primary carrier. Clinical notes, charts, images and prescriptions are never returned.
MCP calldentrix_ascend_read → find_patient
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/patients/find
| Name | Type | Description |
|---|---|---|
| query string required | string | Name, phone number or birth date. |
{
"query": "query"
} {
"patients": [
{
"patient_id": "pt_2045",
"name": "Liam Carter",
"birth_date": "1988-04-12",
"status": "Active",
"location": "Main Street Dental",
"primary_contact": "Liam Carter",
"primary_carrier": "Delta Dental"
}
]
} Does what the Confirm, Left Message, Unreachable and Unconfirm buttons on the Unconfirmed Appts page do. It records the outcome of a call you or your team made; no message goes to the patient. It reaches no one and the next call sets it back, so it does not wait for your OK.
MCP calldentrix_ascend_write → set_confirmation_status
REST endpointPUT https://cotlet.dev/api/v1/dentrix-ascend/appointments/{appointment_id}/confirmation-status
| Name | Type | Description |
|---|---|---|
| appointment_id string required | string | Appointment ID from list_appointments or list_unconfirmed_appointments. |
| status string required | string | confirmed, left_message, unreachable or unconfirmed. |
{
"appointment_id": "appointment_8c41d2",
"status": "status"
} {
"appointment_id": "apt_40214",
"status": "Confirmed",
"previous_status": "Unconfirmed"
} Primary plans only, as in Dentrix Ascend. A request needs the "Request Eligibility" security right, and a Pro request costs money, so it always asks first.
Reads Schedule > Insurance Eligibility for a day or week. Appointments come grouped by carrier, then by time, with the last verification date and whether it was manual or automatic. Dentrix Ascend verifies primary insurance only; a patient never verified, or a carrier without real-time checks, shows as Unable to Verify. Nothing is changed.
MCP calldentrix_ascend_read → list_insurance_eligibility
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/insurance-eligibilities
| Name | Type | Description |
|---|---|---|
| date date | date | Day to read. Default: today. |
| view string | string | day or week. Default: day. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
| provider string | string | Provider name. Default: every provider you can see. |
{
"date": "2026-10-28",
"unable_to_verify": [
{
"appointment_id": "apt_40214",
"patient": "Liam Carter",
"patient_id": "pt_2045",
"carrier": "Delta Dental",
"last_verified": null,
"method": null
}
],
"ineligible": [
{
"appointment_id": "apt_40230",
"patient": "Mia Lopez",
"patient_id": "pt_3310",
"carrier": "Cigna",
"last_verified": "2026-10-01",
"method": "automatic"
}
],
"eligible": [
{
"appointment_id": "apt_40211",
"patient": "Ava Morales",
"patient_id": "pt_1182",
"carrier": "MetLife",
"last_verified": "2026-10-02",
"method": "automatic"
}
]
} Clicks Essentials or Pro on the Insurance Eligibility page for one appointment. Your user role needs the "Request Eligibility" security right, the location needs an eTrans User ID, and Pro needs a payer connection. Henry Schein One charges for each Pro request, so every call waits for your approval. By default you confirm each call; you can switch that off for this tool.
MCP calldentrix_ascend_write → request_eligibility_verification
REST endpointPOST https://cotlet.dev/api/v1/dentrix-ascend/appointments/{appointment_id}/eligibility-verification/request
| Name | Type | Description |
|---|---|---|
| appointment_id string required | string | Appointment ID from list_appointments or list_unconfirmed_appointments. |
| level string required | string | essentials or pro. |
{
"appointment_id": "apt_40214",
"level": "essentials"
} {
"appointment_id": "apt_40214",
"patient_id": "pt_2045",
"level": "essentials",
"carrier": "Delta Dental",
"result": "Eligible",
"verified_at": "2026-10-27T09:12:00-06:00",
"import_available": true
} Active patients by default. A recare note stays inside the practice.
Runs Home > Reports > Recare Management with your filters. Returns each patient with recare type, due date, the next recare appointment or Unscheduled, primary contact, phone and Last Contacted. Only active patients unless you set include_inactive. Nothing is changed.
MCP calldentrix_ascend_read → list_recare_due
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/recare-dues
| Name | Type | Description |
|---|---|---|
| due_from date | date | Start of the due date range. |
| due_to date | date | End of the due date range. Default: today. |
| appointment string | string | all, scheduled or unscheduled. Default: unscheduled. |
| recare_types string[] | string[] | Recare type names as set up in your practice. Default: all. |
| include_inactive boolean | boolean | Also return inactive patients. Default: false. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
{
"patients": [
{
"patient_id": "pt_0874",
"patient": "Ethan Brooks",
"recare_type": "Prophy",
"due_date": "2026-08-14",
"appointment": "Unscheduled",
"primary_contact": "Ethan Brooks",
"phone": "(555) 010-7781",
"last_contacted": {
"channel": "email",
"at": "2026-08-07T09:00:00-06:00"
}
},
{
"patient_id": "pt_1530",
"patient": "Sofia Reyes",
"recare_type": "Perio Maint",
"due_date": "2026-09-02",
"appointment": "Unscheduled",
"primary_contact": "Sofia Reyes",
"phone": "(555) 010-9123",
"last_contacted": null
}
]
} Writes the Recare Note the Recare Management report and the patient Overview show, such as "Called twice, asked for a Tuesday slot". The note stays inside the practice and is edited the same way, so it does not wait for your OK.
MCP calldentrix_ascend_write → add_recare_note
REST endpointPOST https://cotlet.dev/api/v1/dentrix-ascend/patients/{patient_id}/recare-notes
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from find_patient or a list tool. |
| recare_type string required | string | Recare type name from list_recare_due. |
| note string required | string | Note text. |
{
"patient_id": "patient_8c41d2",
"recare_type": "recare type",
"note": "note"
} {
"patient_id": "pt_0874",
"recare_type": "Prophy",
"note": "Oct 27: left voicemail, wants a Saturday slot.",
"saved": true
} Adds a note under Patient Information > Notes, dated today unless you set date. It does not set the note as a pop-up notification. Patient notes are internal; the patient never sees them. It reaches no one and can be edited or deleted in Dentrix Ascend, so it does not wait for your OK.
MCP calldentrix_ascend_write → add_patient_note
REST endpointPOST https://cotlet.dev/api/v1/dentrix-ascend/patients/{patient_id}/note
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from find_patient or a list tool. |
| text string required | string | Note text, up to 5,000 characters. |
| date date | date | Note date. Default: today. |
{
"patient_id": "patient_8c41d2",
"text": "text"
} {
"patient_id": "pt_2045",
"note_id": "nt_77120",
"date": "2026-10-27",
"saved": true
} Read only. Power Reports show synced data with its "Data as of" time, so the newest entries appear after the next sync.
Runs Home > Insurance > Outstanding Claims. A claim is unresolved when it is overdue past the carrier's cut-off, rejected (Rejected by Payer, Rejected by eServices, Unprocessable, Zero Payment, Additional Information Requested, Attachment Error) or due for a follow-up reminder. Age comes from the claim's creation date. Nothing is changed.
MCP calldentrix_ascend_read → list_outstanding_claims
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/outstanding-claims
| Name | Type | Description |
|---|---|---|
| as_of date | date | Claims created up to this date. Default: today. |
| period string | string | all, over_15, over_30, over_45 or over_60. Default: all. |
| carrier string | string | Insurance carrier name. Default: all carriers. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
{
"as_of": "2026-10-27",
"claims": [
{
"claim_id": "clm_58120",
"patient": "Liam Carter",
"patient_id": "pt_2045",
"carrier": "Delta Dental",
"created": "2026-09-02",
"status": "Additional Information Requested",
"amount": 1240,
"currency": "USD"
},
{
"claim_id": "clm_58164",
"patient": "Mia Lopez",
"patient_id": "pt_3310",
"carrier": "Cigna",
"created": "2026-09-15",
"status": "Sent",
"amount": 310,
"currency": "USD"
}
]
} Returns every claim created for the patient, newest first, with carrier, dates, amount, status and attachment names. Predeterminations are included when you ask for them. Nothing is changed and no claim is resubmitted.
MCP calldentrix_ascend_read → get_patient_claims
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/patients/{patient_id}/claims
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from find_patient or a list tool. |
| include_predeterminations boolean | boolean | Also return predeterminations. Default: false. |
{
"patient_id": "patient_8c41d2"
} {
"patient_id": "pt_2045",
"claims": [
{
"claim_id": "clm_58120",
"carrier": "Delta Dental",
"created": "2026-09-02",
"amount": 1240,
"status": "Additional Information Requested",
"attachments": [
"Narrative"
]
}
]
} Opens the report from Home > Reports > Power Reporting (for example Production Summary, Missed Appointments, Recare Report, New Patients Seen) with your filters and returns the rows and the Data as of time. Power Reports read synced data, so entries made after that time show on the next sync. Nothing is saved.
MCP calldentrix_ascend_read → run_power_report
REST endpointGET https://cotlet.dev/api/v1/dentrix-ascend/power-reports/run
| Name | Type | Description |
|---|---|---|
| report string required | string | Report name as Power Reporting shows it. |
| from date | date | Start of the range. Default: today. |
| to date | date | End of the range. Default: 7 days after from. |
| location string | string | Location name as Dentrix Ascend shows it on the Location menu. Default: the location you are signed in to. |
{
"report": "report"
} {
"report": "Missed Appointments",
"data_as_of": "2026-10-27T06:00:00-06:00",
"rows": [
{
"provider": "Dr. Ellis",
"missed": 6,
"production_not_realized": 1850
},
{
"provider": "Jordan Hale, RDH",
"missed": 4,
"production_not_realized": 620
}
]
} Your logged-in Dentrix Ascend profile, encrypted with AES-256-GCM, in Finland. Not the password.
The 13 Dentrix Ascend tools. Never the cookie.
What your user role sees: schedule, patients, insurance and reports at your locations.
Clinical notes, charts, images, prescriptions, payments, users and settings.
MFA sends a code by email or text. You type it in, we never do.
Disable for agents, reset the browser, or deactivate the user in Ascend.
Patient data is protected health information. Your agreement with Henry Schein One covers it inside Dentrix Ascend; sending it to an AI agent or to Cotlet is your practice's own decision under HIPAA. Cotlet does not sign a BAA. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.
"To protect against bots and non-humans, a user is logged out automatically when there is inappropriate usage."
After such a logout, the next sign-in shows a CAPTCHA and may ask for MFA. Henry Schein One also says it is "strengthening our security to prevent unauthorized connections" from vendors outside its API Exchange, and it sued one such vendor in October 2025 over access to Dentrix desktop databases. Its customer license is not published, so we could not quote it. Cotlet works through the Ascend web app in your own login, but Henry Schein One could still treat it as unapproved access. We found no public case of a practice account closed for this (checked 27 Oct 2026).
If you get a CAPTCHA at sign-in, solve it yourself in the Cloud Browser. Cotlet never solves one.
Dentrix Ascend is a web app that Henry Schein One updates in place. When a page moves or a column is renamed, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Set a confirmation status | Set it again: Unconfirm, Left Message or Unreachable |
| Request an Essentials check | No; it only updates the status from the payer's answer |
| Request a Pro check | No, and the per-request fee applies |
| Add a recare note | Edit the note in the patient Overview |
| Add a patient note | Edit or delete it under Patient Information > Notes |
1 of 13 tools asks first: request_eligibility_verification, because a Pro request carries a fee from Henry Schein One. Confirmations and notes stay inside the practice and reach no patient, so they run at once. Switch the wait off per tool for a scheduled run.
Essentials and Pro need an eTrans User ID for the location, and Pro needs a payer connection. Without them the request fails and costs nothing on our side.
{
"name": "request_eligibility_verification",
"arguments": {
"appointment_id": "apt_40214",
"level": "essentials"
}
} curl -X POST https://cotlet.dev/api/v1/dentrix-ascend/appointments/apt_40214/eligibility-verification/request \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"level":"essentials"}' {
"appointment_id": "apt_40214",
"patient_id": "pt_2045",
"level": "essentials",
"carrier": "Delta Dental",
"result": "Eligible",
"verified_at": "2026-10-27T09:12:00-06:00",
"import_available": true
} Scripts and cron jobs reach the same tools over REST at /api/v1/dentrix-ascend, with the same key and price. A failed call costs nothing. The tools table lists the REST path of each tool.
About $29 a monthfor a two-dentist location that works its lists every business day, 4,940 credits. Henry Schein One bills Dentrix Ascend and Eligibility Pro as before.
| Job | Calls | Credits |
|---|---|---|
| Check insurance before visits | 5 × 22 | 1,100 |
| Work the unconfirmed list | 7 × 22 | 1,540 |
| Recare list and notes | 12 × 4 | 480 |
| Outstanding claims follow-up | 6 × 4 | 240 |
| Production and missed appointments | 2 × 4 | 80 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 4,940 |
The month is our example: the eligibility and unconfirmed lists every business day, recare, claims and two reports every week. Henry Schein One does not publish Dentrix Ascend or Eligibility Pro prices. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| Ascend MCP layer | Ask preview for questions in plain language inside Ascend; pre-built agents for eligibility, claims reconciliation and recall gaps. | Agents for select customers; Build has no date; no docs for Claude, ChatGPT or your own agent. |
| Henry Schein One API Exchange | Approved vendors connect forms, analytics, communications and AI products through the API. | For vendors, not practices. You buy their product and its workflows. |
| Eligibility Pro | Henry Schein One's own add-on: checks payer portals and imports benefits. | Eligibility only, with a per-request or monthly fee. |
| GitHub | We found no Dentrix Ascend MCP server or CLI. | Nothing to install. |
| Zapier, Make, n8n | We found no Dentrix Ascend app. | Only through a vendor that has its own app. |
If your plan includes the MCP agents or Eligibility Pro, use them: they are official and sanctioned. Cotlet is for a practice that wants its own agent on its own lists today, without waiting for the Build layer or buying a vendor product.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Dentrix Ascend tools.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Create a free account at https://cotlet.dev, open Dentrix Ascend under Integrations in the console and log in to Dentrix Ascend in its Cloud Browser. The trial starts with your first app, no card asked.
The tools see what your user role sees. Requesting an eligibility check needs the "Request Eligibility" right, the Insurance A/R overview needs "Review Insurance", and Eligibility Pro payer setup needs "Payer Connection Portal" (Dentrix Ascend Help, checked 27 Oct 2026).
A Pro request does: Dentrix Ascend Help says each Pro request has a per-transaction cost, paid per request or through a monthly package. Essentials uses standard payer data. request_eligibility_verification waits for your approval on every call.
Your agreement with Henry Schein One covers data inside Dentrix Ascend. Sending patient data to an AI agent or to Cotlet is a separate decision for your practice under HIPAA. Cotlet does not sign a BAA. No tool reads clinical notes, charts, images or prescriptions.
No. These tools are for Dentrix Ascend, the cloud version you open in a browser. Dentrix desktop runs on a server in your office and has no web login.
Dentrix Ascend calls it recare. Ask your agent either way; list_recare_due reads the Recare Management report.
Only the door is different. Both expose the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Henry Schein One or Dentrix.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy