Get patient by id
GET/patient
Retrieves a patient's basic profile by ID, scoped to your organization. Read-only. Staff accounts are not accessible through this endpoint.
Code samples
Node.js
const fetch = require('node-fetch');
async function callApi() {
const apiKey = 'YOUR_API_KEY';
const id = 'your-id';
const queryString = new URLSearchParams({
id: id
}).toString();
const url = `https://account.lunahealth.app/api/patient` + (queryString ? `?${queryString}` : '');
try {
const response = await fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
const data = await response.json();
console.log(data);
return data;
} catch (error) {
console.error('Error calling API:', error);
throw error;
}
}
callApi();
Python
import requests
def call_api():
api_key = 'YOUR_API_KEY'
url = 'https://account.lunahealth.app/api/patient'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
params = {
'id': 'your-id'
}
try:
response = requests.get(
url,
headers=headers,
params=params
)
response.raise_for_status()
data = response.json()
print(data)
return data
except requests.exceptions.RequestException as e:
print(f'Error calling API: {e}')
raise
call_api()
Parameters
| Name | In | Type | Required | Description |
|---|
id | query | string | Yes | — |
Responses
| Status | Description |
|---|
200 | Successful response |
400 | Invalid input data |
401 | Authorization not provided |
403 | Insufficient access |
404 | Not found |
500 | Internal server error |
200 — Successful response
Response fields
| Name | Type | Required | Description |
|---|
id | string | Yes | — |
first_name | string | null | Yes | — |
last_name | string | null | Yes | — |
email | string | null | Yes | — |
type | string | null | No | — |
Example response
{
"id": "string",
"first_name": "string",
"last_name": "string",
"email": "string",
"type": "STAFF"
}
400 — Invalid input data
Response fields
| Name | Type | Required | Description |
|---|
message | string | Yes | The error message |
code | string | Yes | The error code |
issues | array<object> | No | An array of issues that were responsible for the error |
Example response
{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}
401 — Authorization not provided
Response fields
| Name | Type | Required | Description |
|---|
message | string | Yes | The error message |
code | string | Yes | The error code |
issues | array<object> | No | An array of issues that were responsible for the error |
Example response
{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}
403 — Insufficient access
Response fields
| Name | Type | Required | Description |
|---|
message | string | Yes | The error message |
code | string | Yes | The error code |
issues | array<object> | No | An array of issues that were responsible for the error |
Example response
{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}
404 — Not found
Response fields
| Name | Type | Required | Description |
|---|
message | string | Yes | The error message |
code | string | Yes | The error code |
issues | array<object> | No | An array of issues that were responsible for the error |
Example response
{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}
500 — Internal server error
Response fields
| Name | Type | Required | Description |
|---|
message | string | Yes | The error message |
code | string | Yes | The error code |
issues | array<object> | No | An array of issues that were responsible for the error |
Example response
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}
Open in interactive reference →