API Developer Portal
The apikeys endpoint allows developers to manage CustomerKeys for their accounts. To interact with this endpoint, you must authenticate with a DeveloperPortalKey. At this time, Open Dental initializes and resets DeveloperPortalKey, self-service functionality for generating/clearing DeveloperPortalKeys will be available in the Developer Portal in a future release. Contact Open Dental support if you need your key reset.
Authorization Header Format: ODFHIR {DeveloperKey}/{DeveloperPortalKey}
Returns all CustomerKeys associated with your account.
Example Requests:
GET /apikeys
Example Response:
[
{
"CustomerKey": "AAM2DYNOLF0F7ZUD",
"KeyStatus": "Enabled",
"DateCreated": "2024-12-04",
"DateDisabled": "0001-01-01",
"DateTimeAssigned": "0001-01-01 00:00:00"
},
{
"CustomerKey": "93R8TEL22OI4UPYX",
"KeyStatus": "Enabled",
"DateCreated": "2024-12-04",
"DateDisabled": "0001-01-01",
"DateTimeAssigned": "0001-01-01 00:00:00"
},
{
"CustomerKey": "565ATSAH4SZDUTTK",
"KeyStatus": "DisabledByDeveloper",
"DateCreated": "2025-06-12",
"DateDisabled": "2025-07-28",
"DateTimeAssigned": "0001-01-01 00:00:00"
}
]
200 OK
400 BadRequest (with explanation)
401 Unauthorized (with explanation)
Creates and returns a new CustomerKey. This is the most common call when onboarding a new practice.
Example Requests:
POST /apikeys
Example Response:
{
"CustomerKey": "AAM2DYNOLF0F7ZUD",
"KeyStatus": "Enabled",
"DateCreated": "2024-12-04",
"DateDisabled": "0001-01-01",
"DateTimeAssigned": "0001-01-01 00:00:00"
}
201 Created
400 BadRequest (with explanation)
401 Unauthorized (with explanation)
Updates the status or metadata of an existing CustomerKey.
CustomerKey: Required. The customer key to update..
KeyStatus: Optional. Either "Enabled" or "DisabledByDeveloper".
Example Requests:
PUT /apikeys
{
"CustomerKey": "CustomerKeyHere",
"KeyStatus": "DisabledByDeveloper",
}
Example Response:
{
"CustomerKey": "AAM2DYNOLF0F7ZUD",
"KeyStatus": "DisabledByDeveloper",
"DateCreated": "2024-12-04",
"DateDisabled": "0001-01-01",
"DateTimeAssigned": "0001-01-01 00:00:00"
}
200 OK
400 BadRequest (with explanation)
401 Unauthorized (with explanation)
404 NotFound (with explanation)