You need to pull patient information into an external dashboard, custom reporting tool, or a third-party application to streamline your practice workflows. Using the open dental API read patient data functionality allows you to securely access records like names, contact details, and balances without manually exporting reports or risking database corruption.
Prerequisites
Before you can begin, you must ensure your environment is configured correctly.
- Developer Portal Access: You must have a developer account with Open Dental. Contact
vendor.relations@opendental.comto request access. - API Keys: You need two keys: a Developer API Key (provided by the portal) and a Customer API Key (generated in the portal and added to the practice's Open Dental software).
- eConnector: For remote access, the practice must have the eConnector service installed and running on their server.
- API Setup: In the practice's Open Dental software, go to
Setup > Advanced Setup > API. Ensure the "Enabled" checkbox is checked and your Customer API Key is added here. - Permissions: Ensure your API key has the necessary permissions (e.g.,
Patientsread access) granted in the Developer Portal.
Implementation
The Open Dental API uses standard HTTP requests. You will need to include your keys in the Authorization header.
Authentication Header Format
The header must be formatted as: Authorization: ODFHIR {DeveloperKey}/{CustomerKey}.
Example: Fetching a List of Patients (Node.js)
This example uses the fetch API to retrieve a list of patients.
const developerKey = 'YOUR_DEVELOPER_KEY';
const customerKey = 'YOUR_CUSTOMER_KEY';
const baseUrl = 'https://api.opendental.com/api/v1';
async function getPatients() {
const response = await fetch(`${baseUrl}/patients`, {
method: 'GET',
headers: {
'Authorization': `ODFHIR ${developerKey}/${customerKey}`,
'Content-Type': 'application/json'
}
});
if (!response.ok) {
throw new Error(`Error: ${response.status}`);
}
const data = await response.json();
console.log(data);
}
getPatients();
Common Errors
- 401 Unauthorized: This usually means your Developer Key or Customer Key is incorrect, or the Customer Key has been disabled in the
Setup > Advanced Setup > APIwindow. - 400 Bad Request: Often caused by malformed JSON or invalid parameters in your request. Check the API documentation for the specific endpoint requirements.
- 504 Gateway Time-out: The request took longer than 60 seconds. This can happen with very large databases. Consider using pagination (
LimitandOffsetparameters) to fetch data in smaller chunks.
Limitations
- Rate Limits: Requests are throttled based on your API tier. Ensure your application respects these limits to avoid being blocked.
- Data Restrictions: You cannot delete patients via the API. Some sensitive fields may be restricted depending on your assigned permissions.
- Pagination: When requesting lists, the API returns a maximum of 100 items by default. You must use
Offsetto retrieve subsequent pages of data.
Don't want to build your own dashboard? DentalCanvas already connects to your Open Dental data and shows you everything in a visual interface.
This article is provided by opendentalsupport.com, an independent community resource. We are not affiliated with Open Dental Software, Inc.