The Open Dental API allows third-party software to securely read from and write to your practice's database. Whether you are looking to sync patient information with a specialized marketing tool, automate appointment reminders, or pull custom reports, the API provides the bridge between your practice management software and external applications.
Prerequisites
Before you can begin, you must ensure your office meets the technical requirements for secure data communication:
- eConnector: Your office must have the Open Dental eConnector service installed and running on the server. This service acts as the secure gateway for all API traffic.
- API Access: You must enable the API within your software. Go to
Setup > Advanced Setup > APIand check the Enabled box. - Developer Portal Access: If you are a developer, you must obtain a Developer API Key by contacting
vendor.relations@opendental.com. You will use this key to access the Open Dental Developer Portal, where you can generate and manage Customer API Keys for specific offices. - Pricing Tiers: Depending on the data you need to access (such as insurance, documents, or custom queries), you may need to subscribe to a specific API pricing tier.
Implementation
The Open Dental API uses standard RESTful principles. All requests require an Authorization header containing your Developer Key and the specific Customer Key.
The base URL for all requests is: https://{serverIP}:{port}/api/v1/
Here is a simple example using Node.js to fetch a list of patients:
const axios = require('axios');
// Replace with your actual keys and server details
const developerKey = 'YOUR_DEVELOPER_KEY';
const customerKey = 'YOUR_CUSTOMER_KEY';
const baseUrl = 'https://api.opendental.com/api/v1/';
async function getPatients() {
try {
const response = await axios.get(`${baseUrl}patients`, {
headers: {
'Authorization': `ODFHIR ${developerKey}/${customerKey}`,
'Content-Type': 'application/json'
}
});
console.log(response.data);
} catch (error) {
console.error('Error fetching patients:', error.response ? error.response.data : error.message);
}
}
getPatients();
Common Errors
When working with the API, you may encounter standard HTTP status codes. Here is how to interpret the most common ones:
- 400 Bad Request: Often indicates that the eConnector is not running, the request is malformed, or you are using an API method not supported by your current version of Open Dental.
- 401 Unauthorized: This means your Developer Key or Customer Key is invalid, expired, or not properly formatted in the
Authorizationheader. - 504 Gateway Time-out: The request took longer than 60 seconds to process. This often happens when querying very large datasets without using proper pagination.
Limitations
To maintain system stability and security, the API has specific constraints:
- Pagination: Methods that return lists (like patients or appointments) are limited to 100 items per request. You must use
OffsetandLimitparameters to retrieve larger datasets. - Throttling: Requests are throttled based on your API tier. Exceeding these limits will result in temporary blocks.
- Data Restrictions: You cannot perform destructive actions (like deleting records) unless explicitly supported by a specific API endpoint. Custom queries are strictly read-only.
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.