drchrono Practice Management API
Create and manage practice management resources
Create and manage practice management resources
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/drchrono-practice-management-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Drchrono Practice Management API
version: v4 - Hunt Valley
x-logo:
url: https://www.drchrono.com/site_media/images/logos/drchrono-black-wpadding.png
altText: DrChrono Logo
description: 'Operations tagged Practice Management across 2 of this provider''s published API definitions: drchrono-rest-api-openapi-schema.json, drchrono-rest-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.drchrono.com
tags:
- description: Create and manage practice management resources
name: Practice Management
paths:
/api/doctor_work_schedule/{id}:
put:
responses:
'204':
content: {}
description: No Content
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: doctor_work_schedule_update
description: Update an existing doctor's entire work schedule
patch:
responses:
'204':
content: {}
description: No Content
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: doctor_work_schedule_partial_update
description: Update an existing doctor's work schedule
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkSchedule'
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: doctor_work_schedule_read
description: Retrieve a work schedule for the doctor (beta)
servers:
- url: https://app.drchrono.com
/api/messages:
post:
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/DoctorMessage'
description: Created
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: integer
description: ''
title: patient
required: false
description: ''
name: patient
in: query
- schema:
type: integer
description: ''
title: doctor
required: false
description: ''
name: doctor
in: query
- schema:
type: integer
description: ''
title: responsible_user
required: false
description: ''
name: responsible_user
in: query
- schema:
type: string
description: ''
title: updated_since
required: false
description: ''
name: updated_since
in: query
- schema:
type: string
description: ''
title: received_since
required: false
description: ''
name: received_since
in: query
- schema:
type: integer
description: ''
title: owner
required: false
description: ''
name: owner
in: query
- schema:
type: string
description: ''
title: type
required: false
description: ''
name: type
in: query
tags:
- Practice Management
x-permissions:
- message-center
x-practice-access: '"share_communications" need to be set for data access among practice'
security:
- drchrono_oauth2:
- messages:read
- messages:write
operationId: messages_create
description: Create messages in doctor's message center
get:
responses:
'200':
content:
application/json:
schema:
title: ''
type: object
description: Paginated Result
properties:
previous:
type: string
description: Previous paginated page
title: previous
data:
items:
$ref: '#/components/schemas/DoctorMessage'
type: array
description: result data
title: data
next:
type: string
description: Next Paginated page
title: next
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: The pagination cursor value.
title: Cursor
required: false
name: cursor
in: query
- schema:
type: integer
description: Number of results to return per page.
title: Page size
required: false
name: page_size
in: query
- schema:
type: integer
description: ''
title: patient
required: false
description: ''
name: patient
in: query
- schema:
type: integer
description: ''
title: doctor
required: false
description: ''
name: doctor
in: query
- schema:
type: integer
description: ''
title: responsible_user
required: false
description: ''
name: responsible_user
in: query
- schema:
type: string
description: ''
title: updated_since
required: false
description: ''
name: updated_since
in: query
- schema:
type: string
description: ''
title: received_since
required: false
description: ''
name: received_since
in: query
- schema:
type: integer
description: ''
title: owner
required: false
description: ''
name: owner
in: query
- schema:
type: string
description: ''
title: type
required: false
description: ''
name: type
in: query
tags:
- Practice Management
x-permissions:
- message-center
x-practice-access: '"share_communications" need to be set for data access among practice'
security:
- drchrono_oauth2:
- messages:read
- messages:write
operationId: messages_list
description: Retrieve or search messages in doctor's message center
servers:
- url: https://app.drchrono.com
/api/task_categories:
post:
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskCategory'
description: Created
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_categories_create
description: Create a task category
get:
responses:
'200':
content:
application/json:
schema:
title: ''
type: object
description: Paginated Result
properties:
previous:
type: string
description: Previous paginated page
title: previous
data:
items:
$ref: '#/components/schemas/TaskCategory'
type: array
description: result data
title: data
next:
type: string
description: Next Paginated page
title: next
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: The pagination cursor value.
title: Cursor
required: false
name: cursor
in: query
- schema:
type: integer
description: Number of results to return per page.
title: Page size
required: false
name: page_size
in: query
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_categories_list
description: Retrieve or search task categories
servers:
- url: https://app.drchrono.com
/api/offices/{id}/add_exam_room:
post:
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Office'
description: Created
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
- schema:
type: integer
description: ''
title: doctor
required: false
description: ''
name: doctor
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: offices_add_exam_room
description: Add an exam room to the office
servers:
- url: https://app.drchrono.com
/api/inventory_vaccines/{id}:
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryVaccine'
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
- schema:
type: string
description: ''
title: status
required: false
description: ''
name: status
in: query
- schema:
type: string
description: ''
title: cvx_code
required: false
description: ''
name: cvx_code
in: query
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
- schema:
type: integer
description: ''
title: doctor
required: false
description: ''
name: doctor
in: query
tags:
- Practice Management
x-permissions:
- clinical-notes
x-practice-access: '"share_inventory" need to be set for data access among practice'
security:
- drchrono_oauth2:
- clinical:read
- clinical:write
operationId: inventory_vaccines_read
description: Retrieve an existing vaccine inventory
servers:
- url: https://app.drchrono.com
/api/offices:
get:
responses:
'200':
content:
application/json:
schema:
title: ''
type: object
description: Paginated Result
properties:
previous:
type: string
description: Previous paginated page
title: previous
data:
items:
$ref: '#/components/schemas/Office'
type: array
description: result data
title: data
next:
type: string
description: Next Paginated page
title: next
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: The pagination cursor value.
title: Cursor
required: false
name: cursor
in: query
- schema:
type: integer
description: Number of results to return per page.
title: Page size
required: false
name: page_size
in: query
- schema:
type: integer
description: ''
title: doctor
required: false
description: ''
name: doctor
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: offices_list
description: Retrieve or search offices
servers:
- url: https://app.drchrono.com
/api/task_statuses/{id}:
put:
responses:
'204':
content: {}
description: No Content
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_statuses_update
description: Update an existing task status
patch:
responses:
'204':
content: {}
description: No Content
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_statuses_partial_update
description: Update an existing task status
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskStatus'
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_statuses_read
description: Retrieve an existing task status
servers:
- url: https://app.drchrono.com
/api/office_work_schedule:
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkSchedule'
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2: []
operationId: office_work_schedule_list
description: Get the work schedule for the authed doctor's primary office (beta)
servers:
- url: https://app.drchrono.com
/api/task_templates:
post:
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskTemplate'
description: Created
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: integer
description: ''
title: assignee_user
required: false
description: ''
name: assignee_user
in: query
- schema:
type: integer
description: ''
title: status
required: false
description: ''
name: status
in: query
- schema:
type: integer
description: ''
title: assignee_group
required: false
description: ''
name: assignee_group
in: query
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
- schema:
type: integer
description: ''
title: category
required: false
description: ''
name: category
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_templates_create
description: Create a task template
get:
responses:
'200':
content:
application/json:
schema:
title: ''
type: object
description: Paginated Result
properties:
previous:
type: string
description: Previous paginated page
title: previous
data:
items:
$ref: '#/components/schemas/TaskTemplate'
type: array
description: result data
title: data
next:
type: string
description: Next Paginated page
title: next
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: The pagination cursor value.
title: Cursor
required: false
name: cursor
in: query
- schema:
type: integer
description: Number of results to return per page.
title: Page size
required: false
name: page_size
in: query
- schema:
type: integer
description: ''
title: assignee_user
required: false
description: ''
name: assignee_user
in: query
- schema:
type: integer
description: ''
title: status
required: false
description: ''
name: status
in: query
- schema:
type: integer
description: ''
title: assignee_group
required: false
description: ''
name: assignee_group
in: query
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
- schema:
type: integer
description: ''
title: category
required: false
description: ''
name: category
in: query
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- tasks:read
- tasks:write
operationId: task_templates_list
description: Retrieve or search task templates
servers:
- url: https://app.drchrono.com
/api/office_work_schedule/{id}:
put:
responses:
'204':
content: {}
description: No Content
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: office_work_schedule_update
description: Update an existing office's entire work schedule
patch:
responses:
'204':
content: {}
description: No Content
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: office_work_schedule_partial_update
description: Update an existing office's work schedule
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkSchedule'
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
tags:
- Practice Management
x-permissions: []
x-practice-access: Data access among practice is available
security:
- drchrono_oauth2:
- user:read
- user:write
operationId: office_work_schedule_read
description: Retrieve a work schedule (beta)
servers:
- url: https://app.drchrono.com
/api/inventory_categories/{id}:
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCategory'
description: OK
'405':
content: {}
description: Method Not Allowed
'404':
content: {}
description: Not Found
'403':
content: {}
description: Permission Denied
'401':
content: {}
description: Unauthorized
'400':
content: {}
description: Bad Request
'500':
content: {}
description: Internal Server Error
parameters:
- schema:
type: string
description: ''
title: ''
required: true
name: id
in: path
- schema:
type: string
description: ''
title: since
required: false
description: ''
name: since
in: query
- schema:
type: integer
description: ''
title: doctor
required: false
description: ''
name: doctor
in: query
tags:
- Practice Management
x-permissions:
- clinical-notes
x-practice-access: '"share_inventory" need to be set for data access among practice'
security:
- drchrono_oauth2:
- clinical:read
- clinical:write
operationId: inventor
# --- truncated at 32 KB (155 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/drchrono/refs/heads/main/openapi/drchrono-practice-management-api-openapi.yml