Skip to content

Location-Based API Billing

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.


Customer Notice (February 2026 Billing Update)

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=100

With 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=100

Please 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.


How Location Billing Is Calculated

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.

Endpoints That Support Location Filtering

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.

Endpoints That Do Not Support Location Filtering

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)
appointmenthistoryappointmenthistories
appointmentstatushistoryappointmentstatushistories
appointmenttaskappointmenttasks
carriercarriers
claimattachmentclaimattachments
clinicalnoteclinicalnotes
clinicalnotetemplateuserfavoriteclinicalnotetemplateuserfavorites
coverageprocedurecoverageprocedures
defaultplancoveragedefaultplancoverages
dentallabdentallabs
documentdocuments
examexams
feeschedulefeeschedules
feeschedulerangefeescheduleranges
globalglobals
globalprocedureglobalprocedures
icd10icd10s
imageattachmentimageattachments
locationlocations
medicalalertmedicalalerts
organizationorganizations
patientpatients
patientconditionpatientconditions
patientinsuranceplanpatientinsuranceplans
patientnotepatientnotes
patientrecarepatientrecares
patienttoothpatientteeth
perioexamperioexams
practiceprocedurepracticeprocedures
prescriptionprescriptions
procedurecategoryprocedurecategories
recaretemplaterecaretemplates
referralsourcereferralsources
signaturesignatures
streamapiusagestreamapiusages
subscriberinsuranceplansubscriberinsuranceplans
transactiontagtransactiontags
transferreasontransferreasons
txcasetxcases
usagereportusagereports
visitvisits

Summary

ScenarioLocations Counted Toward Usage
Endpoint supports location.id filter + you include itOnly the locations you specify
Endpoint supports location.id filter + you omit itAll locations in the organization
Endpoint does not support location.id filterAll locations in the organization

Best Practices

  1. Audit your integration — Identify which endpoints you call and whether they support location filtering.
  2. Add location filters where supported — For endpoints like appointments, transactions, and production reports, include location.id in your filter when you only need data for specific locations.
  3. 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.