Language, race, ethnicity and other code lists of an EHR instance
curl --request GET \
--url https://api.maxcare.ai/v4/ehr/reference-data \
--header 'Authorization: Bearer <token>' \
--header 'X-Organization-Id: <x-organization-id>' \
--header 'x-session-token: <x-session-token>'import requests
url = "https://api.maxcare.ai/v4/ehr/reference-data"
headers = {
"x-session-token": "<x-session-token>",
"X-Organization-Id": "<x-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'x-session-token': '<x-session-token>',
'X-Organization-Id': '<x-organization-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.maxcare.ai/v4/ehr/reference-data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.maxcare.ai/v4/ehr/reference-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Organization-Id: <x-organization-id>",
"x-session-token: <x-session-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.maxcare.ai/v4/ehr/reference-data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-session-token", "<x-session-token>")
req.Header.Add("X-Organization-Id", "<x-organization-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.maxcare.ai/v4/ehr/reference-data")
.header("x-session-token", "<x-session-token>")
.header("X-Organization-Id", "<x-organization-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maxcare.ai/v4/ehr/reference-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-session-token"] = '<x-session-token>'
request["X-Organization-Id"] = '<x-organization-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": "success",
"data": {
"meta": {
"source": "live",
"ehr": "modmed",
"fetchedAt": "<string>",
"completeness": "complete",
"actingAs": "user"
}
}
}{
"code": "success",
"data": {
"readId": "rd_0123456789abcdef0123456789abcdef",
"status": "running",
"pollUrl": "/v4/ehr/reads/rd_0123456789abcdef0123456789abcdef",
"expiresAt": "<string>"
}
}{
"code": "bad_request",
"message": "'id' must be a valid UUID",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "unauthorized",
"message": "Invalid or missing API key",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "forbidden",
"message": "Insufficient scope",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "not_found",
"message": "Resource not found",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 1000 requests per 60 seconds.",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "capability_unsupported",
"message": "This organization's EHR has no appointment finder.",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "unexpected_integration_error",
"message": "EHR sync failed",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}EHR live reads
Language, race, ethnicity and other code lists of an EHR instance
Read live from the EHR, never from the synced copy, and nothing is written. Answers 200 within 8 s, else 202 with Location: /v4/ehr/reads/{readId} (poll it; the result is kept 10 minutes for the same app, organization and session user). 501 capability_unsupported when this EHR lacks the read (see GET /v4/ehr/capabilities). 429 with Retry-After when the app’s share of the EHR login is used up. Cached per instance for an hour (meta.cachedAt).
GET
/
ehr
/
reference-data
Language, race, ethnicity and other code lists of an EHR instance
curl --request GET \
--url https://api.maxcare.ai/v4/ehr/reference-data \
--header 'Authorization: Bearer <token>' \
--header 'X-Organization-Id: <x-organization-id>' \
--header 'x-session-token: <x-session-token>'import requests
url = "https://api.maxcare.ai/v4/ehr/reference-data"
headers = {
"x-session-token": "<x-session-token>",
"X-Organization-Id": "<x-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'x-session-token': '<x-session-token>',
'X-Organization-Id': '<x-organization-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.maxcare.ai/v4/ehr/reference-data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.maxcare.ai/v4/ehr/reference-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Organization-Id: <x-organization-id>",
"x-session-token: <x-session-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.maxcare.ai/v4/ehr/reference-data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-session-token", "<x-session-token>")
req.Header.Add("X-Organization-Id", "<x-organization-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.maxcare.ai/v4/ehr/reference-data")
.header("x-session-token", "<x-session-token>")
.header("X-Organization-Id", "<x-organization-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maxcare.ai/v4/ehr/reference-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-session-token"] = '<x-session-token>'
request["X-Organization-Id"] = '<x-organization-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": "success",
"data": {
"meta": {
"source": "live",
"ehr": "modmed",
"fetchedAt": "<string>",
"completeness": "complete",
"actingAs": "user"
}
}
}{
"code": "success",
"data": {
"readId": "rd_0123456789abcdef0123456789abcdef",
"status": "running",
"pollUrl": "/v4/ehr/reads/rd_0123456789abcdef0123456789abcdef",
"expiresAt": "<string>"
}
}{
"code": "bad_request",
"message": "'id' must be a valid UUID",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "unauthorized",
"message": "Invalid or missing API key",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "forbidden",
"message": "Insufficient scope",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "not_found",
"message": "Resource not found",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 1000 requests per 60 seconds.",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "capability_unsupported",
"message": "This organization's EHR has no appointment finder.",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"code": "unexpected_integration_error",
"message": "EHR sync failed",
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}Authorizations
Marketplace API key
Query Parameters
EHR instance (ins_…) of the caller's organization.
