Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Elation Health Medications API
version: '1.0'
description: 'Operations tagged Medications across 4 of this provider''s published API definitions: elation-api-settings.json, elation-health-api-full-openapi.yaml, elation-health-medications-api-openapi.yml, elation-patient-document-api.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://sandbox.elationemr.com/api/2.0
- description: Sandbox Server
url: https://sandbox.elationemr.com
- description: Production Server
url: https://api.app.elationemr.com
- url: https://app.elationemr.com/api/2.0
description: Production
tags:
- name: Medications
paths:
/medications/:
get:
summary: Find Medications
description: ''
operationId: find-medications
parameters:
- name: patient
in: query
schema:
type: integer
format: int32
- name: thread
in: query
schema:
type: integer
format: int32
- name: practice
in: query
schema:
type: integer
format: int32
- name: discontinued
in: query
description: Whether the thread has a discontinue order or not
schema:
type: boolean
- name: permanent
in: query
description: Whether the medication is temporary or permanent.
schema:
type: boolean
- name: document_date__lt
in: query
description: Date/time in ISO 8601 UTC format that selects chart dates that precede it (exclusive)
schema:
type: string
- name: document_date__gt
in: query
description: Date/time in ISO 8601 UTC format that selects chart dates that follow it (exclusive)
schema:
type: string
- name: document_date__lte
in: query
description: Date/time in ISO 8601 UTC format that selects chart dates that equal or precede it (inclusive)
schema:
type: string
- name: document_date__gte
in: query
description: Date/time in ISO 8601 UTC format that selects chart dates that equal or follow it (inclusive)
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"count\": 1,\n \"next\": null,\n \"previous\": null,\n \"results\": [\n {\n \"id\": 140758834872346,\n \"auth_refills\": 1,\n \"directions\": \"test_direction\",\n \"chart_date\": \"2022-05-24T19:51:46Z\",\n \"show_in_chart_feed\": true,\n \"created_date\": \"2022-05-24T19:51:46Z\",\n \"deleted_date\": null,\n \"document_date\": \"2022-05-24T19:51:46Z\",\n \"fulfillment\": null,\n \"is_doc_med\": false,\n \"last_modified\": \"2022-05-24T19:51:46Z\",\n \"medication\": {\n \"id\": 5465899055,\n \"rxnorm_cuis\": [\n \"402014\"\n ],\n \"ndcs\": [\n \"00113-0915-55\",\n \"00113-0915-30\",\n \"00363-0915-30\",\n \"00363-0915-74\",\n \"37205-0837-15\",\n \"36800-0915-30\",\n \"36800-0915-55\",\n \"37205-0837-74\",\n \"45802-0888-55\",\n \"36800-0915-74\",\n \"00113-0915-74\",\n \"37205-0837-06\",\n \"00363-0915-55\",\n \"00904-5834-71\",\n \"00904-5834-42\",\n \"30142-0915-74\",\n \"00904-5834-41\",\n \"30142-0915-30\",\n \"30142-0915-55\",\n \"45802-0888-30\",\n \"00363-0915-03\",\n \"36800-0915-01\",\n \"36800-0915-03\",\n \"00363-0915-01\",\n \"37205-0837-66\",\n \"57896-0760-42\",\n \"70000-0356-04\",\n \"70000-0356-03\",\n \"70000-0356-02\",\n \"57896-0960-42\",\n \"70000-0356-01\",\n \"00363-0007-03\",\n \"51660-0029-14\",\n \"51660-0029-44\",\n \"51660-0029-27\",\n \"68001-0441-39\",\n \"68001-0441-40\",\n \"68001-0441-98\"\n ],\n \"name\": \"Omeprazole Tab delayed rel 20 mg\",\n \"brand_name\": \"Omeprazole\",\n \"generic_name\": \"Omeprazole delayed rel Tab 20 mg\",\n \"is_controlled\": false,\n \"type\": \"otc\",\n \"route\": \"Oral\",\n \"strength\": \"20 mg\",\n \"form\": \"Tab delayed rel\"\n },\n \"medication_type\": \"otc\",\n \"notes\": \"test_note\",\n \"order_type\": \"Refill\",\n \"patient\": 140754479349761,\n \"pharmacy_instructions\": \"test_instruction\",\n \"practice\": 140754475089924,\n \"prescribing_physician\": 140754478628866,\n \"documenting_personnel\": null,\n \"qty\": \"1.000000000\",\n \"qty_units\": \"AMPULE\",\n \"num_samples\": null,\n \"signed_by\": null,\n \"signed_date\": null,\n \"start_date\": \"2022-02-23\",\n \"icd10_codes\": [\n {\n \"code\": \"U07.1\",\n \"description\": \"COVID-19\"\n }\n ],\n \"thread\": {\n \"id\": 140758834806807,\n \"dc_date\": null,\n \"is_permanent\": true\n }\n }\n ]\n}"
schema:
type: object
properties:
count:
type: integer
example: 1
default: 0
next: {}
previous: {}
results:
type: array
items:
type: object
properties:
id:
type: integer
example: 140758834872346
default: 0
auth_refills:
type: integer
example: 1
default: 0
directions:
type: string
example: test_direction
chart_date:
type: string
example: '2022-05-24T19:51:46Z'
show_in_chart_feed:
type: boolean
example: true
default: true
created_date:
type: string
example: '2022-05-24T19:51:46Z'
deleted_date: {}
document_date:
type: string
example: '2022-05-24T19:51:46Z'
fulfillment: {}
is_doc_med:
type: boolean
example: false
default: true
last_modified:
type: string
example: '2022-05-24T19:51:46Z'
medication:
type: object
properties:
id:
type: integer
example: 5465899055
default: 0
rxnorm_cuis:
type: array
items:
type: string
example: '402014'
ndcs:
type: array
items:
type: string
example: 00113-0915-55
name:
type: string
example: Omeprazole Tab delayed rel 20 mg
brand_name:
type: string
example: Omeprazole
generic_name:
type: string
example: Omeprazole delayed rel Tab 20 mg
is_controlled:
type: boolean
example: false
default: true
type:
type: string
example: otc
route:
type: string
example: Oral
strength:
type: string
example: 20 mg
form:
type: string
example: Tab delayed rel
medication_type:
type: string
example: otc
notes:
type: string
example: test_note
order_type:
type: string
example: Refill
patient:
type: integer
example: 140754479349761
default: 0
pharmacy_instructions:
type: string
example: test_instruction
practice:
type: integer
example: 140754475089924
default: 0
prescribing_physician:
type: integer
example: 140754478628866
default: 0
documenting_personnel: {}
qty:
type: string
example: '1.000000000'
qty_units:
type: string
example: AMPULE
num_samples: {}
signed_by: {}
signed_date: {}
start_date:
type: string
example: '2022-02-23'
icd10_codes:
type: array
items:
type: object
properties:
code:
type: string
example: U07.1
description:
type: string
example: COVID-19
thread:
type: object
properties:
id:
type: integer
example: 140758834806807
default: 0
dc_date: {}
is_permanent:
type: boolean
example: true
default: true
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: python
code: "import requests\nimport json\n\naccess_token = \"VFroUHsmrErlVI6nJ08Alwhri5RGCW\"\nauth_header = f\"Bearer {access_token}\"\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/medications/\",\n headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
samples-languages:
- python
tags:
- Medications
security:
- sec0: []
post:
summary: Create Medication
description: ''
operationId: create-medication
parameters:
- name: Authorization
in: header
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
required:
- auth_refills
- is_doc_med
- medication
- medication_type
- order_type
- patient
- practice
- prescribing_physician
- qty
- qty_units
- start_date
- icd10_codes
- thread
properties:
auth_refills:
type: integer
description: The number of refills, excluding this order, that the patient is authorized for
format: int32
is_doc_med:
type: boolean
description: If the medication order is intended to document a med instead of draft a prescription. When it is true, the object will be automatically signed as a documented medication, otherwise the object will be created as a draft prescription
medication:
type: object
description: medication object (must provide one of id, ndc, rxnorm_cuis required)
properties:
id:
type: integer
description: Medication id
format: int32
ndcs:
type: array
description: The NDC code of the medication(must contains only one ndc code)
items:
type: string
rxnorm_cuis:
type: array
description: The Rxnorm.cui code of the medication(must contains only one cui code)
items:
type: string
medication_type:
type: string
description: If this is OTC or a prescription
enum:
- otc
- prescription
order_type:
type: string
description: If the medication order is new, a refill or a change in dosage
enum:
- New
- Refill
- Change
patient:
type: integer
description: The id of the patient
format: int32
practice:
type: integer
description: The id of the practice
format: int32
prescribing_physician:
type: integer
description: prescribing physician ID
format: int32
qty:
type: number
description: The amount of the medication to order (decimal)
format: double
qty_units:
type: string
description: The units that match the amount, e.g. capsules
enum:
- BAG
- BOTTLE
- BOX
- CAPSULE
- CARTRIDGE
- CONTAINER
- DROP
- GRAM
- INHALER
- INTERNATIONAL UNITE
- KIT
- LITER
- LOZENGE
- MILLIGRAM
- MILLILITER
- MILLION UNITS
- MUTUALLY DEFINED
- FLUID OUNCE
- NOT SPECIFIED
- PACK
- PACKET
- PINT
- SUPPOSITORY
- SYRINGE
- TABLESPOON
- TABLET
- TEASPOON
- TRANSDERMAL PATCH
- TUBE
- UNIT
- VIAL
- EACH
- GUM
- AMPULE
- APPLICATOR
- APPLICATORFUL
- BAR
- BEAD
- BLISTER
- BLOCK
- BOLUS
- CAN
- CANISTER
- CAPLET
- CARTON
- CASE
- CASSETTE
- CYLINDER
- DISK
- DOSE PACK
- DUAL PACK
- FILM
- GALLON
- IMPLANT
- INHALATION
- INHALER REFILL
- INSERT
- INTRAVENOUS BAG
- KILOGRAM
- METRIC DROP
- MILLIMETER
- NEBULE
- NEEDLE FREE INJECTION
- OCULAR SYSTEM
- OUNCE
- PACKAGE
- PAD
- PAPER
- PATCH
- PEN NEEDLE
- POUCH
- POUND
- PRE-FILLED PEN SYRINGE
- PUFF
- QUART
- RING
- SACHET
- SCOOPFUL
- SPONGE
- SPRAY
- STICK
- STRIP
- SWAB
- TABMINDER
- TAMPON
- TRAY
- TROCHE
- WAFER
start_date:
type: string
description: The date on which the prescription started or will start.
format: date
icd10_codes:
type: array
description: icd10 IDs
items:
properties:
code:
type: string
description: icd10 code
type: object
thread:
type: object
description: Refer to the medication thread documentation for more info
required:
- is_permanent
properties:
id:
type: integer
description: Thread id (NOT required)
format: int32
is_permanent:
type: boolean
description: if thread is permanent
directions:
type: string
description: The med order directions
notes:
type: string
description: Any notes for the patient
pharmacy_instructions:
type: string
description: Any notes for the pharmacy
num_samples:
type: string
description: med order num samples
document_date:
type: string
description: The timestamp for when this prescription was first documented. Will be the same as the creation time unless this an historical data import.
format: date
documenting_personnel:
type: integer
description: physician object required if is_doc_med is true
format: int32
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: python
code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# sending only required data\ndata = { \n \"auth_refills\": 1,\n \"is_doc_med\": false,\n \"medication\":{\n \"id\": 5465899055\n },\n \"medication_type\": \"prescription\",\n \"order_type\": \"Refill\",\n \"patient\": 140754479349761,\n \"practice\": 140754475089924,\n \"prescribing_physician\": 140754478628866,\n \"qty\": \"1\",\n \"qty_units\": \"AMPULE\",\n \"start_date\": \"2022-02-23\",\n \"icd10_codes\": [],\n \"thread\": {\n \"is_permanent\": true\n },\n}\n\nresp = requests.post(\"https://sandbox.elationemr.com/api/2.0/medications/\",\n data=json.dumps(data),\n headers={'Authorization': auth_header,\n 'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
samples-languages:
- python
tags:
- Medications
security:
- sec0: []
servers:
- url: https://sandbox.elationemr.com/api/2.0
/medications/{id}/:
get:
summary: Get Medication
description: ''
operationId: get-medication
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
- name: Authorization
in: header
required: true
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"id\": 140758834872346,\n \"auth_refills\": 1,\n \"directions\": \"test_direction\",\n \"chart_date\": \"2022-05-24T19:51:46Z\",\n \"show_in_chart_feed\": true,\n \"created_date\": \"2022-05-24T19:51:46Z\",\n \"deleted_date\": null,\n \"document_date\": \"2022-05-24T19:51:46Z\",\n \"fulfillment\": null,\n \"is_doc_med\": false,\n \"last_modified\": \"2022-05-24T19:51:46Z\",\n \"medication\": {\n \"id\": 5465899055,\n \"rxnorm_cuis\": [\n \"402014\"\n ],\n \"ndcs\": [\n \"00113-0915-55\",\n \"00113-0915-30\",\n \"00363-0915-30\",\n \"00363-0915-74\",\n \"37205-0837-15\",\n \"36800-0915-30\",\n \"36800-0915-55\",\n \"37205-0837-74\",\n \"45802-0888-55\",\n \"36800-0915-74\",\n \"00113-0915-74\",\n \"37205-0837-06\",\n \"00363-0915-55\",\n \"00904-5834-71\",\n \"00904-5834-42\",\n \"30142-0915-74\",\n \"00904-5834-41\",\n \"30142-0915-30\",\n \"30142-0915-55\",\n \"45802-0888-30\",\n \"00363-0915-03\",\n \"36800-0915-01\",\n \"36800-0915-03\",\n \"00363-0915-01\",\n \"37205-0837-66\",\n \"57896-0760-42\",\n \"70000-0356-04\",\n \"70000-0356-03\",\n \"70000-0356-02\",\n \"57896-0960-42\",\n \"70000-0356-01\",\n \"00363-0007-03\",\n \"51660-0029-14\",\n \"51660-0029-44\",\n \"51660-0029-27\",\n \"68001-0441-39\",\n \"68001-0441-40\",\n \"68001-0441-98\"\n ],\n \"name\": \"Omeprazole Tab delayed rel 20 mg\",\n \"brand_name\": \"Omeprazole\",\n \"generic_name\": \"Omeprazole delayed rel Tab 20 mg\",\n \"is_controlled\": false,\n \"type\": \"otc\",\n \"route\": \"Oral\",\n \"strength\": \"20 mg\",\n \"form\": \"Tab delayed rel\"\n },\n \"medication_type\": \"otc\",\n \"notes\": \"test_note\",\n \"order_type\": \"Refill\",\n \"patient\": 140754479349761,\n \"pharmacy_instructions\": \"test_instruction\",\n \"practice\": 140754475089924,\n \"prescribing_physician\": 140754478628866,\n \"documenting_personnel\": null,\n \"qty\": \"1.000000000\",\n \"qty_units\": \"AMPULE\",\n \"num_samples\": null,\n \"signed_by\": null,\n \"signed_date\": null,\n \"start_date\": \"2022-02-23\",\n \"icd10_codes\": [\n {\n \"code\": \"U07.1\",\n \"description\": \"COVID-19\"\n }\n ],\n \"thread\": {\n \"id\": 140758834806807,\n \"dc_date\": null,\n \"is_permanent\": true\n }\n}"
schema:
type: object
properties:
id:
type: integer
example: 140758834872346
default: 0
auth_refills:
type: integer
example: 1
default: 0
directions:
type: string
example: test_direction
chart_date:
type: string
example: '2022-05-24T19:51:46Z'
show_in_chart_feed:
type: boolean
example: true
default: true
created_date:
type: string
example: '2022-05-24T19:51:46Z'
deleted_date: {}
document_date:
type: string
example: '2022-05-24T19:51:46Z'
fulfillment: {}
is_doc_med:
type: boolean
example: false
default: true
last_modified:
type: string
example: '2022-05-24T19:51:46Z'
medication:
type: object
properties:
id:
type: integer
example: 5465899055
default: 0
rxnorm_cuis:
type: array
items:
type: string
example: '402014'
ndcs:
type: array
items:
type: string
example: 00113-0915-55
name:
type: string
example: Omeprazole Tab delayed rel 20 mg
brand_name:
type: string
example: Omeprazole
generic_name:
type: string
example: Omeprazole delayed rel Tab 20 mg
is_controlled:
type: boolean
example: false
default: true
type:
type: string
example: otc
route:
type: string
example: Oral
strength:
type: string
example: 20 mg
form:
type: string
example: Tab delayed rel
medication_type:
type: string
example: otc
notes:
type: string
example: test_note
order_type:
type: string
example: Refill
patient:
type: integer
example: 140754479349761
default: 0
pharmacy_instructions:
type: string
example: test_instruction
practice:
type: integer
example: 140754475089924
default: 0
prescribing_physician:
type: integer
example: 140754478628866
default: 0
documenting_personnel: {}
qty:
type: string
example: '1.000000000'
qty_units:
type: string
example: AMPULE
num_samples: {}
signed_by: {}
signed_date: {}
start_date:
type: string
example: '2022-02-23'
icd10_codes:
type: array
items:
type: object
properties:
code:
type: string
example: U07.1
description:
type: string
example: COVID-19
thread:
type: object
properties:
id:
type: integer
example: 140758834806807
default: 0
dc_date: {}
is_permanent:
type: boolean
example: true
default: true
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: python
code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/medications/64184451073/\",\n headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
samples-languages:
- python
tags:
- Medications
security:
- sec0: []
delete:
operationId: medications_destroy
summary: Delete a medication
tags:
- Medications
parameters:
- $ref: '#/components/parameters/id'
responses:
'204':
description: Medication deleted
security:
- sec0: []
servers:
- url: https://sandbox.elationemr.com/api/2.0
/api/2.0/medications/:
get:
operationId: medications_list
parameters:
- description: Whether the thread has a discontinue order or not.
in: query
name: discontinued
schema:
type: boolean
- description: Date/time in ISO 8601 UTC format that selects chart dates that follow it (exclusive).
in: query
name: document_date__gt
schema:
format: date-time
type: string
- description: Date/time in ISO 8601 UTC format that selects chart dates that equal or follow it (inclusive).
in: query
na
# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elation-health/refs/heads/main/openapi/elation-health-medications-api-openapi.yml