If you are tired of manually entering patient data into your marketing, patient communication, or analytics software, you need a way to automate the process. Connecting third-party apps to Open Dental allows your external tools to securely read or update information in your practice management software without you having to lift a finger.
The Open Dental API acts as a secure bridge between your database and authorized external applications. Whether you want to sync patient demographics, automate appointment reminders, or pull production reports into a custom dashboard, the API makes it possible.
Prerequisites
Before you can connect any external software, you must ensure your practice is prepared.
- Developer Portal Access: If you are the developer, you must contact
vendor.relations@opendental.comto request access to the Developer Portal. This is where you generate your unique Developer API Key. - Customer API Key: Once the developer has a key, they generate a specific Customer API Key for your office. You will enter this key into your Open Dental software.
- eConnector: For most remote integrations, you must have the Open Dental eConnector service installed and running on your server. This service facilitates secure communication between your local database and the outside world.
- API Setup in Open Dental:
- Go to Setup > Advanced Setup > API.
- Check the Enabled box.
- Click Add Key in the lower-left corner.
- Paste the Customer API Key provided by the developer and click OK.
- Ensure the permissions granted to that key match the needs of the application.
Implementation
To interact with the API, your application must send requests to the Open Dental API endpoint. The base URL for the remote API is https://api.opendental.com/api/v1/.
All requests require an Authorization header using Basic Auth, formatted as ODFHIR {DeveloperKey}/{CustomerKey}.
Here is a simple example using Node.js to fetch a list of patients:
const axios = require('axios');
const developerKey = 'YOUR_DEVELOPER_KEY';
const customerKey = 'YOUR_CUSTOMER_KEY';
const auth = Buffer.from(`${developerKey}/${customerKey}`).toString('base64');
async function getPatients() {
try {
const response = await axios.get('https://api.opendental.com/api/v1/patients', {
headers: {
'Authorization': `Basic ${auth}`,
'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 connecting third-party apps to Open Dental, you may encounter these common HTTP status codes:
- 401 Unauthorized: This usually means your Developer Key or Customer Key is incorrect, or the keys have been disabled in the API Setup window.
- 403 Forbidden: The API key does not have the required permissions to perform the requested action (e.g., trying to update a patient record when only "read" access was granted).
- 404 Not Found: The specific resource (like a
PatNum) does not exist in the database. - 429 Too Many Requests: You have exceeded the API rate limits.
Limitations
- Rate Limits: To ensure system stability, the API enforces throttling. If your application makes too many requests in a short period, you will receive a 429 error.
- Data Restrictions: You can only access data that the API specifically exposes. You cannot run arbitrary SQL queries through the standard API.
- Version Compatibility: While the API is designed to be backward compatible, ensure your Open Dental software is updated to the latest version (e.g., 25.3) to access the newest API methods.
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.