Existing customers: You may have received an email regarding upcoming changes to API billing. This article provides additional context and guidance for the location-based billing model effective February 1, 2026.
The following notice was sent to API customers regarding the billing change:
Dear Valued Customer,
Beginning February 1, 2026, we will be updating our Dentrix Ascend API billing method. You will no longer need to self-report API usage. However, we have identified that many vendors are currently making API calls for an entire organization rather than filtering by specific locations. Note that pursuant to your current agreement, API fees are charged per location.
Vendors who call data for the entire organization without applying location filters will be charged usage for every location within that organization, effective February 1, 2026. To avoid unnecessary charges, please ensure your API calls include location-level filtering.
Below are two examples for reference:
Without location filter (will incur charges for all locations):
/api/v1/appointments?filter=lastModified>=2025-11-06T15:35:49Z&pageSize=100With location filter (recommended, charges apply per specific locations):
/api/v1/appointments?filter=lastModified>=2025-11-06T15:35:49Z,location.id->[10000000001, 10000000002, 10000000003, 10000000004, 10000000005, 10000000006]&pageSize=100Please review your integration and make any necessary adjustments before February 1 to avoid additional charges.
If you have questions or need assistance, contact the Dentrix Ascend API Exchange team.
Thank you for your attention to this update.
API usage is calculated based on the locations associated with each API call. The calculation depends on whether the endpoint supports location filtering and how you use it.
Note: Ascend does not compile raw API request logs or per-location usage reports due to system scale and design. Responsibility for detailed usage tracking and attribution rests with the integrating partner.
Many endpoints support a location.id filter (for example: appointments, transactions, locationproductionnetschedule, events, and others). For these endpoints:
When you include a location filter — Only the locations you specify in your query are counted toward your usage. For example, if you filter by
location.id->[123, 456], usage is charged for those two locations only.When you omit the location filter — Usage is charged for every location in the organization you are authenticated against. If your organization has 50 locations, an unfiltered call will count as usage across all 50 locations and you will be billed for all 50 locations.
Recommendation: Always include a location.id filter when calling endpoints that support it if you only need data for specific locations.
Some endpoints are organization-scoped and do not support a location.id filter. For these endpoints:
- Every location in the organization you are authenticated against is included in your usage total. There is no way to scope the call to specific locations because the underlying data is not location-specific.
If your integration relies heavily on these endpoints, your usage will naturally span all organization locations. Consider whether you can reduce calls to these endpoints or combine them with location-filtered endpoints where possible.
The following endpoints are excluded from per-location billing and don't count towards location statistics, they are just considered as normal api calls and go against your montly allotment:
Both the singular and plural spelling of each endpoint are listed, since either form may appear in a request path. Both spellings are treated identically for billing purposes.
| Endpoint (singular) | Endpoint (plural) |
|---|---|
| appointmenthistory | appointmenthistories |
| appointmentstatushistory | appointmentstatushistories |
| appointmenttask | appointmenttasks |
| carrier | carriers |
| claimattachment | claimattachments |
| clinicalnote | clinicalnotes |
| clinicalnotetemplateuserfavorite | clinicalnotetemplateuserfavorites |
| coverageprocedure | coverageprocedures |
| defaultplancoverage | defaultplancoverages |
| dentallab | dentallabs |
| document | documents |
| exam | exams |
| feeschedule | feeschedules |
| feeschedulerange | feescheduleranges |
| global | globals |
| globalprocedure | globalprocedures |
| icd10 | icd10s |
| imageattachment | imageattachments |
| location | locations |
| medicalalert | medicalalerts |
| organization | organizations |
| patient | patients |
| patientcondition | patientconditions |
| patientinsuranceplan | patientinsuranceplans |
| patientnote | patientnotes |
| patientrecare | patientrecares |
| patienttooth | patientteeth |
| perioexam | perioexams |
| practiceprocedure | practiceprocedures |
| prescription | prescriptions |
| procedurecategory | procedurecategories |
| recaretemplate | recaretemplates |
| referralsource | referralsources |
| signature | signatures |
| streamapiusage | streamapiusages |
| subscriberinsuranceplan | subscriberinsuranceplans |
| transactiontag | transactiontags |
| transferreason | transferreasons |
| txcase | txcases |
| usagereport | usagereports |
| visit | visits |
| Scenario | Locations Counted Toward Usage |
|---|---|
Endpoint supports location.id filter + you include it | Only the locations you specify |
Endpoint supports location.id filter + you omit it | All locations in the organization |
Endpoint does not support location.id filter | All locations in the organization |
- Audit your integration — Identify which endpoints you call and whether they support location filtering.
- Add location filters where supported — For endpoints like appointments, transactions, and production reports, include
location.idin your filter when you only need data for specific locations. - Contact support — If you have questions about which endpoints support location filtering or need help updating your integration, contact the Dentrix Ascend API Exchange team.