curl --request GET \
--url https://api.healos.ai/ext-api/v1/notes/export \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.healos.ai/ext-api/v1/notes/export', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.healos.ai/ext-api/v1/notes/export"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "9b2d4f6a-1c3e-4a5b-8d7f-0e1a2b3c4d5e",
"patient_id": "481926357104938271",
"session_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"note_type": "clinical_visit",
"specialty": "Cardiology",
"template_id": "<string>",
"template_name": "Follow-Up Patient Visit",
"model": "balanced",
"created_at": "2026-03-15T09:30:00.000Z",
"updated_at": "2026-03-15T10:00:00.000Z",
"content": "<string>",
"problems": [
"Hypertension"
],
"procedures": [
"12-lead ECG"
],
"icd10_codes": {},
"cpt_codes": {},
"transcript": {
"text": "<string>",
"summary": "<string>",
"title": "Follow-up visit",
"status": "completed",
"session_date": "<string>",
"start_time": "<string>",
"end_time": "<string>"
},
"patient": {
"id": "481926357104938271",
"name": "Maria Santos",
"first_name": "<string>",
"last_name": "<string>",
"pronouns": "she/her",
"date_of_birth": "1985-04-12",
"gender": "female",
"email": "<string>",
"phone": "<string>",
"mrn": "MRN-00123",
"client_history": {
"medical_history": "<string>",
"family_history": "<string>",
"social_history": "<string>",
"previous_treatment": "<string>"
}
}
}
],
"meta": {
"count": 123,
"truncated": true
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Rate limit exceeded. Please retry after the window resets.",
"code": "daily_cap_reached",
"reset_at": "2026-10-28T00:00:00.000Z"
}Export clinical notes
Every note matching the same filters as GET /notes, with full content, codes, transcript and patient context. json (default) and csv return at most 1000 notes (meta.truncated, or the X-Result-Truncated header on csv, says when more matched); ndjson streams the full set, one note per line.
curl --request GET \
--url https://api.healos.ai/ext-api/v1/notes/export \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.healos.ai/ext-api/v1/notes/export', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.healos.ai/ext-api/v1/notes/export"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "9b2d4f6a-1c3e-4a5b-8d7f-0e1a2b3c4d5e",
"patient_id": "481926357104938271",
"session_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"note_type": "clinical_visit",
"specialty": "Cardiology",
"template_id": "<string>",
"template_name": "Follow-Up Patient Visit",
"model": "balanced",
"created_at": "2026-03-15T09:30:00.000Z",
"updated_at": "2026-03-15T10:00:00.000Z",
"content": "<string>",
"problems": [
"Hypertension"
],
"procedures": [
"12-lead ECG"
],
"icd10_codes": {},
"cpt_codes": {},
"transcript": {
"text": "<string>",
"summary": "<string>",
"title": "Follow-up visit",
"status": "completed",
"session_date": "<string>",
"start_time": "<string>",
"end_time": "<string>"
},
"patient": {
"id": "481926357104938271",
"name": "Maria Santos",
"first_name": "<string>",
"last_name": "<string>",
"pronouns": "she/her",
"date_of_birth": "1985-04-12",
"gender": "female",
"email": "<string>",
"phone": "<string>",
"mrn": "MRN-00123",
"client_history": {
"medical_history": "<string>",
"family_history": "<string>",
"social_history": "<string>",
"previous_treatment": "<string>"
}
}
}
],
"meta": {
"count": 123,
"truncated": true
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Rate limit exceeded. Please retry after the window resets.",
"code": "daily_cap_reached",
"reset_at": "2026-10-28T00:00:00.000Z"
}| Requirement | Detail |
|---|---|
| Scope | notes:read |
| Rate limit | About 60 requests per minute per API key (shared by all endpoints; approximate) |
| Cost | Free |
- Writes data: No
- Safe to retry: Yes
- Contacts an outside system: None
- Dry run: Not needed (read-only).
format: json (default) and csv return at most 1000 notes (meta.truncated, or the X-Result-Truncated header on csv, says when more matched); ndjson streams every matching note, one per line. Narrow large pulls with from and to. The response holds full note content, transcripts and patient context: store it as PHI.
Guide: Clinical notes: export notes. Errors: Error catalog.Authorizations
API key obtained from /api/v1/ext-api-keys
Query Parameters
Filter by patient ID.
"481926357104938271"
Filter by session ID.
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
Filter by the template the note was generated from.
Filter by authoring clinician (must be a member of your org).
Filter by note type.
"clinical_visit"
Only notes created on/after this date (ISO 8601).
"2026-01-01"
Only notes created on/before this date (ISO 8601).
"2026-06-30"
Export format. json (default) returns a nested array (capped); csv returns a flattened table (capped); ndjson streams one note per line with no row cap.
json, csv, ndjson "json"
Was this page helpful?

